package de.cars.client;

import java.sql.SQLException;
import java.text.ParseException;
import java.util.Arrays;

import javax.xml.namespace.QName;
import org.apache.axiom.om.OMElement;
import org.apache.axis2.AxisFault;
import org.apache.axis2.addressing.EndpointReference;
import org.apache.axis2.client.Options;
import org.apache.axis2.client.ServiceClient;
import org.apache.axis2.databinding.utils.BeanUtil;
import org.apache.axis2.engine.DefaultObjectSupplier;
import de.cars.KundenDaten;
import de.cars.Mietwagen;
import de.cars.MietwagenService;
import de.cars.Tour;

public class SpeedcarsClient {

	public static void main(String[] args) throws AxisFault, ClassNotFoundException, InstantiationException, IllegalAccessException, SQLException {
		
		MietwagenService service = new MietwagenService();
//		
//		Mietwagen allDetailsMietwagen[] = new Mietwagen[2];
//		String model = "VW";
//		allDetailsMietwagen = service.getMietwagenAllDetails(model);
//		
//		for(int i = 0; i < allDetailsMietwagen.length; i++){
//			System.out.println("getMietwagenAllDetails-Ausgabe: "+allDetailsMietwagen[i].getMiid()+", "+allDetailsMietwagen[i].getMarke()+ ", " +allDetailsMietwagen[i].getModel()+
//								allDetailsMietwagen[i].getSitze()+", "+allDetailsMietwagen[i].isKlimaanlage()+", "+allDetailsMietwagen[i].isNavi()+", "+
//								allDetailsMietwagen[i].isSchiebedach()+", "+allDetailsMietwagen[i].isCabrio()+", "+allDetailsMietwagen[i].isTempomat()+", "+
//								allDetailsMietwagen[i].isAnhaengerkupplung()+", "+allDetailsMietwagen[i].getPs()+", "+allDetailsMietwagen[i].getTyp()+", "+allDetailsMietwagen[i].getTagespreis());
//		}
//		
//		
//		String ab_datum = "09/10/2012";
//		String rueck_datum = "08/10/2012";
//		String ort = "Paderborn";		
//
//        Mietwagen wagen[] = new Mietwagen[1];
//        wagen = service.getMietwagen(ab_datum, rueck_datum, ort);
//
//        for(int i = 0; i < wagen.length; i++){
//                System.out.println(" mid: "+wagen[i].getMiid()+", Marke: "+ wagen[i].getMarke() + ", Model: "
//                				  +wagen[i].getModel());
//        }
		service.entferneTour(2);        
//        KundenDaten kd[] = new KundenDaten[service.getKundenDaten().length];
//        kd = service.getKundenDaten();
//        for(int i = 0; i < kd.length; i++){
//        	System.out.println(kd[i].getKid()+", "+kd[i].getVorname()+", "+kd[i].getName()+", "+kd[i].getGeburtsdatum()+", "+kd[i].getEmail());
//        }
//        
//        String dat = "12/09/2012";
//        String model = "VW";
//        Tour t[] = new Tour[service.getTour(model, dat).length];
//        t = service.getTour(model, dat);
//        for(int i = 0; i < t.length; i++){
//        	System.out.println(t[i].getTid()+", "+t[i].getKid()+", "+t[i].getMiid()+", "+t[i].getAbholort()+", "+t[i].getRueckort()+", "+t[i].getGesamtpreis());
//        }
//        

//        
//        service.doTour(2, "Bielefeld");
//
//        MietwagenService tDaten = new MietwagenService();
//        tDaten.insertBuchungsDaten("D.Klute@t-online.de", "Golf", "Bielefeld", "Minden", "11/09/2012", "12/09/2012", "11:00", "15:00");

//	public static void main(String[] args1) throws AxisFault, ClassNotFoundException {
//		 
//			ServiceClient sender = new ServiceClient();
//			Options options = sender.getOptions();
//			EndpointReference targetEPR = new EndpointReference("http://localhost:8080/axis2/services/SpeedcarsService");
//			options.setTo(targetEPR);
//
//	      // Die Operation "findHotel" soll aufgerufen werden
//	      QName opFindHotel = new QName("http://cars.de",
//	                                    "getMietwagenAllDetails");
//
//	      // Die Parameter fï¿½ die Operation "findHotel"
//	      // werden definiert...
//	      String hotelCode = "VW";
//	      Object[] opArgs = new Object[] { hotelCode };
//
//	      // ...und ein AXIOM-OMElement mit der 
//	      //    Request-Nachricht erzeugt
//	      OMElement request = BeanUtil.getOMElement(opFindHotel,
//	                                    opArgs, null, false, null);
//
//	      // Der Request wird an den Service abgeschickt. 
//	      // Der Aufruf erfolgt synchron mit dem 
//	      // Kommunikationsmuster IN-OUT
//	      OMElement response = sender.sendReceive(request);
//
//	      // Diese Typen sollte der Web Service zurï¿½kliefern...
//	      Class[] returnTypes = new Class[] { Mietwagen.class };
//
//	      // ...und werden mit einer Hilfsroutine in ein 
//	      // Objekt-Array ï¿½erfï¿½rt
//	      Object[] result = BeanUtil.deserialize(response,
//	                    returnTypes,	new DefaultObjectSupplier());
//	     
//	      Mietwagen hotel = (Mietwagen) result[0];
//
//	      if (hotel == null) {
//	         System.out.println("No entry for code: " + hotelCode);
//	         return;
//	      }
//	      
//	      System.out.println("Hotel Name: " + hotel.getMarke());
//	      System.out.println("Hotel Code: " + hotel.getModel());

//	      for (RoomType roomType : hotel.getRoomTypes()) {
//
//	         System.out.println("\n RoomCode : " +
//	                            roomType.getRoomCode());
//	         System.out.println(" Price EUR: " +  
//	                            roomType.getPriceInEuros());
//	         System.out.println(" with TV  : " +
//	                            roomType.isRoomWithTV());
//	      }
//	    
//
//	   }
	 }
	   
}
